Legba: Fast Hardware Support for Fine-Grained Protection
نویسندگان
چکیده
Fine-grained hardware protection, if it can be done without slowing down the processor, could deliver significant benefits to software, enabling the implementation of strongly encapsulated light-weight objects. In this paper we introduce Legba, a new caching architecture that aims at supporting fine-grained memory protection and protected procedure calls without slowing down the processor’s clock speed. This is achieved by separating translation from protection, which allows the use of virtually-addressed caches and moving the TLB off-core. Protection is implemented in two stages. We add protection information in the form of an object ID to each cache line. This object ID is combined with a per-protection context identifier, and the result is used to index into a protection cache, which delivers the access rights. As no range check is required on the protection cache, it can be set-associative, allowing it to be made large, fast and low-power, compared to a fully associative TLB. On a cache miss, the object ID is retrieved in parallel to the cache line fetch, performing the protection range check off-core. A new switch permission enables Legba to implement protected procedure calls, where the new context identifier is taken from the instruction cache line’s object ID. This mechanism is similar to call gates but more flexible. The paper compares Legba with approaches based on the idea of a protection look-aside buffer, in particular with respect to coverage.
منابع مشابه
A Survey on the Interaction Between Caching, Translation and Protection
Fine-grained hardware protection could deliver significant benefits to software, enabling the implementation of strongly encapsulated light-weight objects, but only if it can be done without slowing down the processor. In this survey we explore the interaction between the processor’s caches and virtual memory in traditional as well as research architectures. We find that while caching and trans...
متن کاملHow to Emulate Fine-grained Multithreading
Fine-grained multithreading can be used to hide longlatency operations encountered in parallel computers during remote memory access. Instead of using special processor hardware, the emulation of fine-grained multithreading on standard processor hardware is investigated. While emulation of coarse-grained multithreading is common in modern operating systems, in the fine-grained case research on ...
متن کاملUser-Level Sandboxing: a Safe and Efficient Mechanism for Extensibility
Extensible systems allow services to be configured and deployed for the specific needs of individual applications. This paper describes a safe and efficient method for userlevel extensibility that requires only minimal changes to the kernel. A sandboxing technique is described that supports multiple logical protection domains within the same address space at user-level. This approach allows app...
متن کاملMatching micro-kernels to modern applications using fine-grained memory protection
Scalable distributed systems, systems which suffer no degradation as the number of computing nodes becomes larger, require a programming methodology where an application developer may take existing software modules and plug them together to form a new application. To allow mistrusting modules to interact, the underlying kernel support must offer protection barriers which do not impede performan...
متن کاملFine-grained Protection Domain based on Segmentation Mechanism
Extensibility is a vital property of modern applications. An extension component is downloaded from Internet and loaded into an application. However, an extension component may be malicious. Thus there is a risk of the application being illegally accessed. To protect the application from malicious components, this paper proposes a multi-protection page table: a mechanism for providing protectio...
متن کامل